import '../shared/models/word.dart';

class EsperantoVocabulary {
  static final List<Word> vocabulary = [
    // 基础词汇
    Word(
      id: 'hundo',
      esperanto: 'hundo',
      english: 'dog',
      pronunciation: 'HUN-do',
      definition: 'A domesticated mammal commonly kept as a pet',
      category: 'Animals',
      examples: ['La hundo estas fidela amiko', 'Mia hundo ludas en la ĝardeno'],
      audioUrl: '',
      difficulty: 1,
    ),
    Word(
      id: 'kato',
      esperanto: 'kato',
      english: 'cat',
      pronunciation: 'KA-to',
      definition: 'A small domesticated carnivorous mammal',
      category: 'Animals',
      examples: ['La kato dormas sur la lito', 'Nia kato estas tre inteligenta'],
      audioUrl: '',
      difficulty: 1,
    ),
    Word(
      id: 'birdo',
      esperanto: 'birdo',
      english: 'bird',
      pronunciation: 'BIR-do',
      definition: 'A warm-blooded vertebrate with feathers and wings',
      category: 'Animals',
      examples: ['La birdo kantas en la arbo', 'Multaj birdoj flugas suden vintre'],
      audioUrl: '',
      difficulty: 1,
    ),
    Word(
      id: 'fiŝo',
      esperanto: 'fiŝo',
      english: 'fish',
      pronunciation: 'FI-sho',
      definition: 'An aquatic vertebrate with gills and fins',
      category: 'Animals',
      examples: ['Ni manĝas fiŝon ĉe vespermanĝo', 'La fiŝo naĝas en la akvo'],
      audioUrl: '',
      difficulty: 1,
    ),
    Word(
      id: 'ĉevalo',
      esperanto: 'ĉevalo',
      english: 'horse',
      pronunciation: 'CHE-va-lo',
      definition: 'A large domesticated mammal used for riding and work',
      category: 'Animals',
      examples: ['La ĉevalo kuras rapide', 'Ŝi rajdas sur sia ĉevalo'],
      audioUrl: '',
      difficulty: 2,
    ),

    // 植物类
    Word(
      id: 'arbo',
      esperanto: 'arbo',
      english: 'tree',
      pronunciation: 'AR-bo',
      definition: 'A woody perennial plant with a trunk and branches',
      category: 'Plants',
      examples: ['La arbo estas tre alta', 'Sub la arbo estas ombro'],
      audioUrl: '',
      difficulty: 1,
    ),
    Word(
      id: 'floro',
      esperanto: 'floro',
      english: 'flower',
      pronunciation: 'FLO-ro',
      definition: 'The reproductive structure of flowering plants',
      category: 'Plants',
      examples: ['La floro estas bela kaj odora', 'Ŝi plantis florojn en la ĝardeno'],
      audioUrl: '',
      difficulty: 1,
    ),
    Word(
      id: 'rozo',
      esperanto: 'rozo',
      english: 'rose',
      pronunciation: 'RO-zo',
      definition: 'A fragrant flower with thorny stems',
      category: 'Plants',
      examples: ['La ruĝa rozo estas simbolo de amo', 'Rozoj havas dornojn'],
      audioUrl: '',
      difficulty: 2,
    ),
    Word(
      id: 'herbo',
      esperanto: 'herbo',
      english: 'grass',
      pronunciation: 'HER-bo',
      definition: 'Small green plants that cover the ground',
      category: 'Plants',
      examples: ['La herbo estas verda kaj mola', 'Ni kuŝas sur la herbo'],
      audioUrl: '',
      difficulty: 1,
    ),

    // 日常生活
    Word(
      id: 'domo',
      esperanto: 'domo',
      english: 'house',
      pronunciation: 'DO-mo',
      definition: 'A building where people live',
      category: 'Daily Life',
      examples: ['Mia domo estas granda', 'Ni konstruas novan domon'],
      audioUrl: '',
      difficulty: 1,
    ),
    Word(
      id: 'ĉambro',
      esperanto: 'ĉambro',
      english: 'room',
      pronunciation: 'CHAM-bro',
      definition: 'A space in a building enclosed by walls',
      category: 'Daily Life',
      examples: ['Mia ĉambro estas malgranda', 'En la ĉambro estas lito'],
      audioUrl: '',
      difficulty: 1,
    ),
    Word(
      id: 'lito',
      esperanto: 'lito',
      english: 'bed',
      pronunciation: 'LI-to',
      definition: 'Furniture for sleeping',
      category: 'Daily Life',
      examples: ['Mi dormas en mia lito', 'La lito estas komforta'],
      audioUrl: '',
      difficulty: 1,
    ),
    Word(
      id: 'tablo',
      esperanto: 'tablo',
      english: 'table',
      pronunciation: 'TA-blo',
      definition: 'Furniture with a flat top and legs',
      category: 'Daily Life',
      examples: ['Ni manĝas ĉe la tablo', 'Sur la tablo estas libroj'],
      audioUrl: '',
      difficulty: 1,
    ),
    Word(
      id: 'seĝo',
      esperanto: 'seĝo',
      english: 'chair',
      pronunciation: 'SE-gho',
      definition: 'Furniture for sitting',
      category: 'Daily Life',
      examples: ['Mi sidas sur la seĝo', 'La seĝo estas komforta'],
      audioUrl: '',
      difficulty: 1,
    ),

    // 常用短语/动词
    Word(
      id: 'saluton',
      esperanto: 'saluton',
      english: 'hello',
      pronunciation: 'sa-LU-ton',
      definition: 'A greeting used when meeting someone',
      category: 'Common Phrases',
      examples: ['Saluton! Kiel vi fartas?', 'Ŝi diris saluton al mi'],
      audioUrl: '',
      difficulty: 1,
    ),
    Word(
      id: 'dankon',
      esperanto: 'dankon',
      english: 'thank you',
      pronunciation: 'DAN-kon',
      definition: 'An expression of gratitude',
      category: 'Common Phrases',
      examples: ['Dankon pro via helpo', 'Mi diras dankon al vi'],
      audioUrl: '',
      difficulty: 1,
    ),
    Word(
      id: 'pardonu',
      esperanto: 'pardonu',
      english: 'excuse me',
      pronunciation: 'par-DO-nu',
      definition: 'An expression to apologize or get attention',
      category: 'Common Phrases',
      examples: ['Pardonu, kie estas la stacidomo?', 'Pardonu pro mia malfruo'],
      audioUrl: '',
      difficulty: 1,
    ),
    Word(
      id: 'ĝis revido',
      esperanto: 'ĝis revido',
      english: 'goodbye',
      pronunciation: 'ghis re-VI-do',
      definition: 'A farewell greeting',
      category: 'Common Phrases',
      examples: ['Ĝis revido! Ĝis morgaŭ!', 'Ni diris ĝis revido al niaj amikoj'],
      audioUrl: '',
      difficulty: 1,
    ),

    // 中级词汇
    Word(
      id: 'universalo',
      esperanto: 'universalo',
      english: 'university',
      pronunciation: 'u-ni-ver-SA-lo',
      definition: 'An institution of higher education',
      category: 'Education',
      examples: ['Mi studas en la universalo', 'La universalo havas multajn studentojn'],
      audioUrl: '',
      difficulty: 3,
    ),
    Word(
      id: 'lingvo',
      esperanto: 'lingvo',
      english: 'language',
      pronunciation: 'LING-vo',
      definition: 'A system of communication used by humans',
      category: 'Education',
      examples: ['Esperanto estas internacia lingvo', 'Mi lernas novan lingvon'],
      audioUrl: '',
      difficulty: 2,
    ),
    Word(
      id: 'libro',
      esperanto: 'libro',
      english: 'book',
      pronunciation: 'LI-bro',
      definition: 'Written work consisting of pages bound together',
      category: 'Education',
      examples: ['Mi legas interesan libron', 'En la biblioteko estas multaj libroj'],
      audioUrl: '',
      difficulty: 1,
    ),
    Word(
      id: 'skribi',
      esperanto: 'skribi',
      english: 'to write',
      pronunciation: 'SKRI-bi',
      definition: 'To mark letters or words on a surface',
      category: 'Education',
      examples: ['Mi skribas leteron', 'Ŝi lernas skribi esperante'],
      audioUrl: '',
      difficulty: 2,
    ),
    Word(
      id: 'legi',
      esperanto: 'legi',
      english: 'to read',
      pronunciation: 'LE-gi',
      definition: 'To understand written text',
      category: 'Education',
      examples: ['Mi legas ĉiutage', 'Ĉu vi povas legi ĉi tiun tekston?'],
      audioUrl: '',
      difficulty: 2,
    ),

    // 食物类
    Word(
      id: 'pano',
      esperanto: 'pano',
      english: 'bread',
      pronunciation: 'PA-no',
      definition: 'A basic food made from flour and water',
      category: 'Food',
      examples: ['Mi manĝas panon matene', 'La pano estas freŝa kaj varma'],
      audioUrl: '',
      difficulty: 1,
    ),
    Word(
      id: 'akvo',
      esperanto: 'akvo',
      english: 'water',
      pronunciation: 'AK-vo',
      definition: 'A clear liquid essential for life',
      category: 'Food',
      examples: ['Mi trinkas akvo', 'La akvo estas pura kaj malvarma'],
      audioUrl: '',
      difficulty: 1,
    ),
    Word(
      id: 'kafo',
      esperanto: 'kafo',
      english: 'coffee',
      pronunciation: 'KA-fo',
      definition: 'A hot drink made from coffee beans',
      category: 'Food',
      examples: ['Mi trinkas kafon matene', 'La kafo estas tre forte'],
      audioUrl: '',
      difficulty: 1,
    ),
    Word(
      id: 'teo',
      esperanto: 'teo',
      english: 'tea',
      pronunciation: 'TE-o',
      definition: 'A hot drink made from tea leaves',
      category: 'Food',
      examples: ['Ŝi preferas teon ol kafon', 'La teo estas dolĉa kaj varma'],
      audioUrl: '',
      difficulty: 1,
    ),

    // 颜色
    Word(
      id: 'ruĝa',
      esperanto: 'ruĝa',
      english: 'red',
      pronunciation: 'RU-gha',
      definition: 'The color of blood or roses',
      category: 'Colors',
      examples: ['La rozo estas ruĝa', 'Mi portas ruĝan ĉemizon'],
      audioUrl: '',
      difficulty: 1,
    ),
    Word(
      id: 'blua',
      esperanto: 'blua',
      english: 'blue',
      pronunciation: 'BLU-a',
      definition: 'The color of the sky on a clear day',
      category: 'Colors',
      examples: ['La ĉielo estas blua', 'Ŝiaj okuloj estas bluaj'],
      audioUrl: '',
      difficulty: 1,
    ),
    Word(
      id: 'verda',
      esperanto: 'verda',
      english: 'green',
      pronunciation: 'VER-da',
      definition: 'The color of grass and leaves',
      category: 'Colors',
      examples: ['La herbo estas verda', 'Mi ŝatas verdan koloron'],
      audioUrl: '',
      difficulty: 1,
    ),
    Word(
      id: 'flava',
      esperanto: 'flava',
      english: 'yellow',
      pronunciation: 'FLA-va',
      definition: 'The color of the sun or lemons',
      category: 'Colors',
      examples: ['La suno estas flava', 'Flavaj floroj estas belaj'],
      audioUrl: '',
      difficulty: 1,
    ),

    // 数字
    Word(
      id: 'unu',
      esperanto: 'unu',
      english: 'one',
      pronunciation: 'U-nu',
      definition: 'The number 1',
      category: 'Numbers',
      examples: ['Mi havas unu hundon', 'Unu plus unu estas du'],
      audioUrl: '',
      difficulty: 1,
    ),
    Word(
      id: 'du',
      esperanto: 'du',
      english: 'two',
      pronunciation: 'DU',
      definition: 'The number 2',
      category: 'Numbers',
      examples: ['Du kaj du estas kvar', 'Mi havas du katojn'],
      audioUrl: '',
      difficulty: 1,
    ),
    Word(
      id: 'tri',
      esperanto: 'tri',
      english: 'three',
      pronunciation: 'TRI',
      definition: 'The number 3',
      category: 'Numbers',
      examples: ['Tri estas mia plej ŝatata numero', 'En la ĝardeno estas tri arboj'],
      audioUrl: '',
      difficulty: 1,
    ),
  ];

  // 根据难度获取词汇
  static List<Word> getWordsByDifficulty(int difficulty) {
    return vocabulary.where((word) => word.difficulty == difficulty).toList();
  }

  // 根据类别获取词汇
  static List<Word> getWordsByCategory(String category) {
    return vocabulary.where((word) => word.category == category).toList();
  }

  // 获取随机词汇
  static List<Word> getRandomWords(int count) {
    final shuffled = List<Word>.from(vocabulary)..shuffle();
    return shuffled.take(count).toList();
  }

  // 获取所有类别
  static List<String> getAllCategories() {
    return vocabulary.map((word) => word.category).toSet().toList();
  }
} 